﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Practices.Unity;
using Condimar.Entities;
using Condimar.BussinesLogic;

namespace Condimar.UI
{
    public partial class FrmBuscarVendedor : Form
    {
        [Dependency]
        public IVendedorBL vendedorBL { get; set; }
        public FrmBuscarVendedor()
        {
            InitializeComponent();
            this.BuildUp();
        }

        private void FrmBuscarVendedor_Load(object sender, EventArgs e)
        {
            cargarDatos();
        }
        private void cargarDatos()
        {
            vendedorBindingSource.DataSource = vendedorBL.GetAllFromVendedores();

        }

        private void btnCrear_Click(object sender, EventArgs e)
        {
            FrmRegistrarVendedor frm = new FrmRegistrarVendedor();
            frm.Nuevo();
            frm.ShowDialog();
            cargarDatos();
        }

        private void btnEditar_Click(object sender, EventArgs e)
        {
            Vendedor currentVendedor = vendedorBindingSource.Current as Vendedor;
            if (currentVendedor != null)
            {
                FrmRegistrarVendedor frm = new FrmRegistrarVendedor();
                frm.CurrentVendedor = currentVendedor;
                frm.Editar();
                frm.ShowDialog();
                cargarDatos();
            }
            else
            {
                MessageBox.Show("Mensaje", "Seleccione un Item", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            Vendedor currentVendedor = vendedorBindingSource.Current as Vendedor;
            if (currentVendedor != null)
            {
                DialogResult rpta = MessageBox.Show("¿Seguro que desea eliminar el Item?", "Mensaje", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (rpta == DialogResult.Yes)
                {
                    vendedorBL.RemoveVendedor(currentVendedor.Id);
                    // MessageBox.Show("Eliminacion Correcta", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    cargarDatos();
                }
            }
            else
            {
                MessageBox.Show("Seleccione un Item", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            if (rbDni.Checked)
            {
                vendedorBindingSource.DataSource = vendedorBL.GetFromVendedorByDNI(txtDescripcion.Text);
                if (vendedorBindingSource.Count == 0)
                {
                    MessageBox.Show("No se encuentra el Vendedor", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                if (rbNombres.Checked)
                {
                    vendedorBindingSource.DataSource = vendedorBL.GetFromVendedorByNombres(txtDescripcion.Text);
                    if (vendedorBindingSource.Count == 0)
                    {
                        MessageBox.Show("No se encuentra el Vendedor", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }
        public Vendedor CurrentVendedor { get; set; }

        private void vendedorDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            CurrentVendedor = vendedorBindingSource.Current as Vendedor;
        }

        public Vendedor currentVendedor { get; set; }

        private void vendedorDataGridView_DoubleClick(object sender, EventArgs e)
        {
            currentVendedor = vendedorBindingSource.Current as Vendedor;
            this.Close();
        }

        private void txtDescripcion_KeyDown(object sender, KeyEventArgs e)
        {
            if (rbDni.Checked)
            {
                vendedorBindingSource.DataSource = vendedorBL.GetFromVendedorByDNI(txtDescripcion.Text);
                if (vendedorBindingSource.Count == 0)
                {
                    MessageBox.Show("No se encuentra el Vendedor", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                if (rbNombres.Checked)
                {
                    vendedorBindingSource.DataSource = vendedorBL.GetFromVendedorByNombres(txtDescripcion.Text);
                    if (vendedorBindingSource.Count == 0)
                    {
                        MessageBox.Show("No se encuentra el Vendedor", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }

        private void rbDni_CheckedChanged(object sender, EventArgs e)
        {
            if (rbDni.Checked)
            {
                txtDescripcion.Text = "";
            }
            else if (rbNombres.Checked)
            {
                txtDescripcion.Text = "";
            }
        }

        private void txtDescripcion_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (rbDni.Checked)
            {
                if (Char.IsNumber(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsSeparator(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
            else if (rbNombres.Checked)
            {
                if (Char.IsLetter(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsSeparator(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
        }
    }
}
